235aae
@@ -382,6 +382,17 @@
public abstract class StripeMultiFileWriter implements Compactor.CellSink {
         sanityCheckRight(
             right, lastKv.getRowArray(), lastKv.getRowOffset(), lastKv.getRowLength());
       }
+
+      // When expired stripes were going to be merged into one, and if no writer was created during
+      // the compaction, we need to create an empty file to preserve metadata.
+      if (existingWriters.isEmpty() && 1 == targetCount) {
+        if (LOG.isDebugEnabled()) {
+          LOG.debug("Merge expired stripes into one, create an empty file to preserve metadata.");
+        }
+        boundaries.add(left);
+        existingWriters.add(writerFactory.createWriter());
+      }
+
       this.boundaries.add(right);
     }
   }
